Motion compensation for on-board vehicle sensors

ABSTRACT

A method for improving the accuracy with which a road profile ahead of a vehicle may be determined. The method may include receiving a plurality of inputs corresponding to a plurality of on-board sensors corresponding to a vehicle. An on-board computer system may estimate motion of the vehicle. The on-board computer system may correct data corresponding to a forward-looking sensor of the plurality of on-board sensors by accounting for the motion of the vehicle. Accordingly, the on-board computer system may use the corrected data to produce more accurate information characterizing the driving environment ahead of the vehicle. This more accurate information may be used to better estimate the motion of the vehicle in the future as the vehicle encounters that driving environment, which may improve the corrections that may be applied to the data corresponding to the forward-looking sensor at that time.

BACKGROUND

Field of the Invention

This invention relates to vehicular systems and more particularly tosystems and methods for improving the accuracy with which a road profileahead of the vehicle may be determined.

Background of the Invention

To provide, enable, or support functionality such as driver assistance,controlling vehicle dynamics, and/or autonomous driving, an accurate andclear picture of the environment around (e.g., ahead of) a vehicle isvital. Unfortunately, the motion of the vehicle itself often makes itdifficult to extract such a picture from the signal output by on-boardsensors. Accordingly, what is needed is a system and method forimproving the accuracy with which a road profile ahead of a vehicle maybe determined.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the advantages of the invention will be readilyunderstood, a more particular description of the invention brieflydescribed above will be rendered by reference to specific embodimentsillustrated in the appended drawings. Understanding that these drawingsdepict only typical embodiments of the invention and are not thereforeto be considered limiting of its scope, the invention will be describedand explained with additional specificity and detail through use of theaccompanying drawings, in which:

FIG. 1 is a schematic diagram illustrating a vehicle at a first instantin time, the vehicle comprising a system for correcting sensor inputs inaccordance with the present invention;

FIG. 2 is a schematic diagram illustration of the vehicle of FIG. 1 at asecond instant in time in which the vehicle is pitched forward;

FIG. 3 is a schematic block diagram of one embodiment of software thatmay be executed by the system of FIG. 1;

FIG. 4 is a schematic block diagram of one embodiment of a methodcorresponding to or executed by a system in accordance with the presentinvention;

FIG. 5 is a schematic diagram illustration of the vehicle of FIG. 1 at athird instant in time in which one or more sensors of the system are“viewing” a pothole located ahead of the vehicle;

FIG. 6 is a schematic diagram illustration of the vehicle of FIG. 1 at afourth instant in time in which the vehicle is encountering (e.g.,driving over) the pothole;

FIG. 7 is a schematic block diagram of an alternative embodiment ofsoftware that may be executed by the system of FIG. 1;

FIG. 8 is a schematic block diagram of an alternative embodiment of amethod corresponding to or executed by a system in accordance with thepresent invention; and

FIG. 9 is a schematic block diagram of another alternative embodiment ofa method corresponding to or executed by a system in accordance with thepresent invention.

DETAILED DESCRIPTION

It will be readily understood that the components of the presentinvention, as generally described and illustrated in the Figures herein,could be arranged and designed in a wide variety of differentconfigurations. Thus, the following more detailed description of theembodiments of the invention, as represented in the Figures, is notintended to limit the scope of the invention, as claimed, but is merelyrepresentative of certain examples of presently contemplated embodimentsin accordance with the invention. The presently described embodimentswill be best understood by reference to the drawings, wherein like partsare designated by like numerals throughout.

Referring to FIGS. 1 and 2, a system 10 in accordance with the presentinvention may improve the accuracy with which a driving environment maybe characterized. A system 10 may do this in any suitable method. Forexample, a system 10 may be embodied as hardware, software, or somecombination thereof.

In certain embodiments, a system 10 may include a computer system 12, adata acquisition system 14, and one or more sensors 16. The computersystem 12, data acquisition system 14, and sensors 16 may be carriedon-board a vehicle 18. Accordingly, those components 12, 14, 16 may eachbe characterized as “on-board” components. In operation, one or moresensors 16 may output signals, a data acquisition system 14 may convertthose signals into inputs processable by an on-board computer system 12,and the on-board computer system 12 may process data corresponding toone or more sensors 16 in order to improve the accuracy thereof.

In selected embodiments, various sensors 16 may each comprise atransducer that senses or detects some characteristic of an environmentand provides a corresponding output (e.g., an electrical or opticalsignal) that defines that characteristic. For example, one or moresensors 16 of a system 10 may be accelerometers that output anelectrical signal characteristic of the proper acceleration beingexperienced thereby. Such accelerometers may be used to determine theorientation, acceleration, velocity, and/or distance traveled by avehicle 18. Other sensors 16 of a system 10 may include cameras, laserscanners, lidar scanners, ultrasonic transducers, radar devices,gyroscopes, inertial measurement units, revolution counters or sensors,strain gauges, temperature sensors, or the like or combinations orsub-combinations thereof.

On-board sensors 16 may monitor the environment of a correspondingvehicle 18. Certain sensors 16 such as cameras, laser scanners,ultrasonic devices, radars, or the like may be used for driverassistance, controlling vehicle dynamics, and/or autonomous driving. Forexample, the data from such sensors 16 may be used to identify objects(e.g., other vehicles, traffic signs etc.) or surface anomalies (e.g.,bumps, potholes, truck ruts) and their position (e.g., angle, distance)relative to a corresponding vehicle 18.

If a vehicle 18 rides over a bumpy road, a forward-looking sensor 16(e.g., a vehicle-mounted camera 16 a, laser sensor 16 a, or the likemonitoring the road surface ahead of the vehicle 18) may register thesame portion of road at different angles, depending on the currentmotion state of the vehicle 18. Thus, a road profile calculated fromthis noisy sensor information becomes less accurate. Accordingly, incertain embodiments, to improve the usability of information collectedfrom such sensors 16, a system 10 in accordance with the presentinvention may compensate for motion of the vehicle 18.

For example, at a first instant 20 in time, a forward-looking sensor 16a may have a range extending a first distance 22. However, at a secondinstant 24 in time, a vehicle 18 may have pitched forward 26 due to abump, braking, or the like. Accordingly, in the second instant 24, theforward-looking sensor 16 a may have a range extending a second distance28 that is significantly shorter than the first distance 22. Thus,between the first and second instants 22, 24, the “view” of the sensor16 a may have changed faster or differently than what would haveoccurred strictly based on the velocity of the vehicle. This may produceunwanted noise or instability in the output of that sensor 16 a.Accordingly, a system 10 may work to filter out such noise.

Referring to FIG. 3, in selected embodiments, a data acquisition system14 may sample signals 30 output by one or more sensors 16 and convertthe resulting samples into inputs 32 (e.g., digital numeric values) thatcan be manipulated by an on-board computer system 12. For example, adata acquisition system 14 may convert signals 30 in the form of analogwaveforms into inputs 32 in the form of digital values suitable forprocessing. In certain embodiments, a data acquisition system 14 mayinclude conditioning circuitry that converts signals 30 output by one ormore sensor 16 into forms that can be converted to digital values, aswell as analog-to-digital converters to perform such converting.

In certain embodiments, inputs 32 produced by a data acquisition system14 may be separated into two categories 34, 36. In a first category 34may be those inputs 32 that are less adversely affected by motion of acorresponding vehicle 18. In a second category 36 may be those that aremore adversely affected by motion of a corresponding vehicle 18.

In selected embodiments, inputs 32 in the first category 34 may includeone or more driver inputs 32 a and/or direct motion inputs 32 b. Driverinputs 32 a may include one or more values characterizing things such asvelocity, drive torque, brake actuation, steering input, or the like orcombinations or sub-combinations thereof. Direct motion inputs 32 b mayinclude one or more values obtained from one or more signals 30corresponding to one or more inertial measurement units, gyroscopes,accelerometers, or the like or combinations or sub-combinations thereof.

Inputs 32 in the second category 36 may include one or more inputs 32for which correction or compensation is needed or desired. Such inputs32 may include one or more values corresponding to one or moreforward-looking sensors 16. For example, inputs 32 in the secondcategory 36 may corresponding to one or more cameras, laser sensors orscanners, lidar scanners, ultrasonic transducers, or the like orcombinations or sub-combinations thereof.

An on-board computer system 12 in accordance with the present inventionmay provide, enable, or support an integrated compensation systemutilizing various sensors 16 mounted on a corresponding vehicle 18. Inselected embodiments, this may be accomplished at least in part by usinginputs 32 in the first category 34 to correct or compensate for inputs32 in the second category 36.

In selected embodiments, an on-board computer system 12 may be selfcontained and operate independent of any other computer system orhardware that is not carried on-board the corresponding vehicle 18.Alternatively, an on-board computer system 12 may communicate asnecessary with at least one remote computer via a communication network(e.g., a cellular network, satellite network, local area wirelessnetwork, or the like).

An on-board computer system 12 may comprise computer hardware andcomputer software. The computer hardware of an on-board computer system12 may include one or more processors, memory, a user interface, one ormore antennas, other hardware, or the like or a combination orsub-combination thereof. The memory may be operably connected to the oneor more processors and store the computer software. This may enable theone or more processors to execute the computer software.

A user interface of an on-board computer system 12 may enable anengineer, technician, or a driver to interact with, customize, orcontrol various aspects of an on-board computer system 12. In selectedembodiments, a user interface of an on-board computer system 12 mayinclude one or more buttons, keys, touch screens, pointing devices, orthe like or a combination or sub-combination thereof. In otherembodiments, a user interface of an on-board computer system 12 maysimply comprise one or more connection ports, pairings, or the like thatenable an external computer to interact or communicate with the on-boardcomputer system 12.

In certain embodiments, an on-board computer system 12 may include anantenna that enables the on-board computer system 12 to communicate withat least one remote computer via a communication network (e.g., acellular network connected to the Internet), an antenna to receive GPSsignals from one or more GPS satellites, or the like or a combinationthereof.

In selected embodiments, the memory of an on-board computer system 12may store software programmed to use inputs 32 in the first category 34to correct or compensate for inputs 32 in the second category 36. Suchsoftware may have any suitable configuration. In certain embodiments,the software of an on-board computer system 12 may include amotion-estimation module 38 and a motion-compensation module 40.

A motion-estimation module 38 may use one or more inputs 32 to determinehow a corresponding vehicle 18 is moving. In selected embodiments, thismay be accomplished by combining inputs 32 a characterizing drivercontrolled parameters such as velocity, drive torque, brake actuation,steering input, or the like with inputs 32 b indicative of a currentattitude or orientation of a body of the vehicle 18 to obtain motioninformation 42 articulating the current motion state of the body of thevehicle 18.

In selected embodiments, a motion-estimation module 38 may use inputs 32a characterizing driver controlled parameters to obtain or define avector setting forth a direction of travel and velocity at a particularmoment in time. Inputs 32 b indicative of a current attitude ororientation of a body of the vehicle 18 may corresponding to one or moreinertial measurement units, gyroscopes, accelerometers, or the like orcombinations or sub-combinations thereof. A motion-estimation module 38may use such inputs 32 b to define one or more parameters such as pitch,roll, and yaw of a body of the vehicle 18. Accordingly, by using bothinputs 32 a, 32 b, a motion-estimation module 38 may output motioninformation 42 that substantially completely estimates and articulatesthe motion of the body of vehicle 18 at a given moment in time.

The motion information 42 produced by a motion-estimation module 38 maybe used by a motion-compensation module 40 to compensate for the motionswhich certain sensors 16 (e.g., sensors 16 corresponding to inputs 32 ofthe second category 36) experience relative to the surroundings they areintended to measure. This compensation may be the product of analgorithm applied by the motion-compensation module 40. Accordingly, amotion-compensation module 40 may output one or more corrected inputs 44or compensated inputs 44 that are more useful (e.g., more stable, lessnoisy, etc.).

Referring to FIG. 4, a system 10 may support, enable, or execute aprocess 46 in accordance with the present invention. In selectedembodiments, such a process 46 may begin with receiving 48, by a dataacquisition system 14, signals 30 from one or more sensors 16. Thesignals 30 may be converted 50 to computer inputs 32 by the dataacquisition system 14.

An on-board computer system 12 (e.g., a motion-estimation module 38) mayuse 52 certain inputs 32 (e.g., inputs 32 in a first category 34) todetermine the current motion of a corresponding vehicle 18. The on-boardcomputer system 12 (e.g., a motion-compensation module 40) may furtherapply 54 a compensation algorithm to correct other inputs 32 (e.g.,inputs 32 in a second category 36). In selected embodiments, thecompensation algorithm may use information 42 defining the currentmotion of the corresponding vehicle 18 to reduce the adverse effects ofthat motion on certain inputs 32 (e.g., inputs 32 in a second category36). Accordingly, an on-board computer system 12 (e.g., amotion-compensation module 40) may output 56 corrected inputs 44.

In general, there may be three coordinate systems to consider indevising a compensation algorithm. The first may be a global, inertialcoordinate system. The second may be an undisturbed coordinate system ofa vehicle 16. This may be the coordinate system of an “undisturbed”version of the vehicle 16, which may be defined as having its “xy” planeparallel to a ground plane (e.g., an estimated ground plane). The thirdmay be a disturbed coordinate system of the vehicle 16. This may be thecoordinate system of an actual vehicle performing roll, pitch, heave,and yaw motions which can be driver-induced (e.g., caused by steering,braking, accelerating, or the like) or road-induced (e.g., caused byroad irregularities or the like) or due to other disturbances (e.g.,side wind or the like).

In selected embodiments, a compensation algorithm may transform inputs32 corresponding to signals 30 measured in the third coordinate systeminto the first coordinate system (e.g., for determining the positions oftargets/objects relative to the vehicle 16) and/or the second coordinatesystem (e.g., for performing collision avoidance functionalities).Transforming the inputs 32 from one coordinate system to another may beperformed using transformation matrices.

For example, any disturbance in the inputs 32 (which inputs 32 may bedescribed as vectors) caused by motion of the vehicle body relative tothe first coordinate system (e.g., heave, pitch, roll, yaw) may be seenas a transformation that could be described as a matrix operation.Accordingly, correcting the disturbance may involve un-doing thedisturbance transformation by performing another matrix transformation.The coupled result of both transformation operations (e.g., disturbancetransformation and correction transformation) may be neutral. Thus, inselected embodiments, a compensation algorithm may execute three steps,namely: (1) determine or estimate a disturbance transformation (e.g.,disturbance matrix) based on a currently detected motion state; (2)determine a transformation operation (e.g., correction matrix) thatwould compensate for the estimated disturbance; and (3) perform thecompensation transformation on a current, disturbed input 32 (e.g.,input vector).

The steps 46, 50, 52, 54, 56 for obtaining corrected inputs 44 may besubstantially continuously repeated. The time interval between each suchrepeat may be relatively small (e.g., a small fraction of a second).Accordingly, corrected inputs 44 that are up-to-date may besubstantially continuously available. Thus, the corrected inputs 44produced by a system 10 in accordance with the present invention may besuitable for use in processes where reaction time is important and mustbe fast.

Corrected inputs 44 may be employed 58 to control certain operations ofa corresponding vehicle 18. For example, in selected embodiments,corrected inputs 44 may be used for driver assistance. This may includecollision avoidance or the like. In other embodiments, corrected inputs44 may be used for controlling vehicle dynamics. This may includemodifying the dynamics of a vehicle 18 to better deal with an obstacle.For example, corrected inputs 44 may enable a vehicle 18 to lift a wheelto avoid a pothole or the like. In still other embodiments, correctedinputs 44 may be used for autonomous driving. This may includerecognizing and properly negotiating road boundaries, lane markers,obstacles, other vehicles, and the like.

Referring to FIGS. 5 and 6, in selected embodiments, corrected inputs 44may provide a better view of certain physical features in theenvironment of the corresponding vehicle 18. Accordingly, a system 10may use that better view to better estimate the motion of the vehicle18, which better estimation may better correct one or more inputs 32. Incertain embodiments, this may allow one or more forward-looking sensors16 a to contribute to and improve the accuracy of the motion information42.

For example, one or more forward-looking sensors 16 a (e.g., cameras)may detect a physical feature ahead of a corresponding vehicle 18. Anon-board computer system 12 may use that physical feature in one or moreways to better estimate the current motion of the vehicle 18. In certainembodiments, the relative position of the physical feature may betracked over some period of time. This may enable an on-board computersystem 12 to better understand how a corresponding vehicle 18 is movingwith respect to that physical feature. For example, if the physicalfeature is a horizon, tracking that horizon using one or moreforward-looking sensors 16 a may provide information on the pitch, theroll, and potentially the yaw of the vehicle 18.

Alternatively, or in addition thereto, a physical feature may bedetected and analyzed to determine something about the motion of thevehicle at a future time (e.g., at the time the corresponding vehicle 18encounters or drives over that physical feature). For example, at afirst instant 60 in time, one or more forward-looking sensors 16 a maydetect a physical feature such as a pothole 62, bump, curving centerline, or the like. After determining the nature of the physical feature,speed of the vehicle 18, direction of the vehicle 18, and the like, anon-board computer system 12 may predict how the physical feature willaffect the motion of the vehicle 18 at a second instant 64 in time(i.e., the time the vehicle 18 encounters the physical feature).Accordingly, an on-board computer system 12 may use that prediction toobtain more accurate motion information 42 suitable for correctinginputs 32 corresponding to signals 30 collected at the time of thesecond instant 64.

Referring to FIG. 7, in certain embodiments, the software of an on-boardcomputer system 12 may include a motion-estimation module 38, amotion-compensation module 40, and a sensor-evaluation module 66. Asensor-evaluation module 66 may analyze one or more corrected inputs 44to obtain therefrom data 68 that may be used by a motion-estimationmodule 38 to better estimate the motion of the corresponding vehicle 18.The data 68 may characterize current motion of a vehicle 18, futuremotion a physical feature or set of physical features is likely toproduce when the physical feature or set is encountered, or acombination current motion and future motion.

In selected embodiments, a sensor-evaluation module 66 may provide,support, or enable an iterative process to produce corrected inputs 32.An iterative process may be particularly useful when the data 68characterizes the current motion of a vehicle 18. The number ofiterations may vary and may be selected to accommodate the processingcapabilities and available time. In certain embodiments, to shortenresponse time, only one iteration may be executed for a given set orbatch of inputs 32, which set or batch would correspond to a particularmoment in time.

In embodiments where the data 68 characterizes (e.g., exclusivelycharacterizes) future motion a physical feature or set of physicalfeatures is likely to produce when the physical feature or set isencountered, the data 68 may be taken into account without an iterativeprocess. For example, the data 68 corresponding to a first instant 60 intime may be stored in memory of an on-board computer system 12.Accordingly, the data 68 may be available and ready to use in estimatingthe motion of the body of the vehicle 18 at the second instant 62 intime.

In selected embodiments, a motion-estimation module 38 may include avirtual, vehicle-motion model 70. In operation, a vehicle-motion model70 may be provided with one or more driver inputs 32 a and data 68characterizing a road ahead of the vehicle 18. With this information 32,68, the vehicle-motion model 70 may predict motion states of the body ofthe vehicle 18. Thereafter, as the road ahead becomes the road currentlybeing encountered, inputs 32 (e.g., direct motion inputs 32 b and/orinputs 32 from forward-looking sensors 16 a) characterizing currentmotion states may be used to correct those earlier predictions. Incertain embodiments, this correction of predictions and the resultingproduction of motion information 42 may be accomplished through theapplication of a Kalman filter.

The parameters of a virtual, vehicle-motion model 70 may be determinedor specified in any suitable manner. In selected embodiments, certainparameters of a vehicle-motion model 70 may be derived from previousknowledge of the mechanical properties (e.g., geometries, inertia,stiffness, damping coefficients, etc.) of the vehicle 18. Alternativelyor addition thereto, self-learning algorithms may be used. Suchalgorithms may adapt certain parameters of a virtual, vehicle-motionmodel 70 to reflect real-world conditions and/or changes due to loading,ageing, temperature effects, or the like or combinations orsub-combinations thereof. Accordingly, the parameters may be selectedand/or optimized to closely match predicted and measured motion.

Referring to FIG. 8, a system 10 may support, enable, or execute analternative process 46 a in accordance with the present invention. Inselected embodiments, such a process 46 a may include a decision 72 toiterate after the corrected inputs 44 have been output 56.

If an iteration (or an additional iteration) is to be performed, thecorrected inputs 44 or data (e.g., data 68) derived therefrom may be fedinto a motion-estimation module 38 so that the accuracy motioninformation 42 at a particular moment in time may be improved. If noiteration (or no additional iteration) is to be performed, a system 10may move on and process inputs 32 corresponding to a later moment intime. The corrected inputs 44 produced with each round may be employed58 as desired or necessary.

Referring to FIG. 9, a system 10 may support, enable, or execute anotheralternative process 46 b in accordance with the present invention. Inselected embodiments, such a process 46 b may include using correctedinputs 44 to measure 74 or otherwise characterize a road ahead of thecorresponding vehicle 18. This understanding of the road ahead mayenable an on-board computer system 12 (e.g., a motion-estimation module38) to predict 76 future motion of the vehicle 18 (e.g., motion of thevehicle 18 as it drives over that portion of road). The prediction offuture motion may be stored 78 as necessary until it is needed or used.In this manner, a system 10 in accordance with the present invention mayprovide rapid, real-time correction of inputs 32. Accordingly, thecorrected inputs 44 produced thereby may be suitable for use in variousdriver assistance, vehicle dynamics, and/or autonomous drivingactivities where a short processing and reaction time is important oreven vital.

The flowcharts in FIGS. 4, 8, and 9 illustrate the architecture,functionality, and operation of possible implementations of systems,methods, and computer program products according to certain embodimentsof the present invention. In this regard, each block in the flowchartsmay represent a module, segment, or portion of code, which comprises oneor more executable instructions for implementing the specified logicalfunction(s). It will also be noted that each block of the flowchartillustrations, and combinations of blocks in the flowchartillustrations, may be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

It should also be noted that, in some alternative implementations, thefunctions noted in the blocks may occur out of the order noted in theFigures. In certain embodiments, two blocks shown in succession may, infact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. Alternatively, certain steps or functions may beomitted if not needed.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrative,and not restrictive. The scope of the invention is, therefore, indicatedby the appended claims, rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

What is claimed is:
 1. A method comprising: carrying on-board, by avehicle, a computer system and a plurality of sensors; receiving, by thecomputer system, first data characterizing one or more conditions sensedby the plurality of sensors at a particular moment in time; estimating,by the computer system based on the first data, an expected amount ofmovement of the vehicle at a future time after the particular moment intime with respect to a reference coordinate system at the particularmoment in time based on a feature located in front of the vehicle anddetected in the first data; defining a transformation according to theestimating of the expected amount of movement of the vehicle relative tothe reference coordinate system; and receiving, by the computer system,second data characterizing one or more conditions sensed at the futuretime by one or more sensors of the plurality of sensors when the featureis located under the vehicle; correcting, by the computer system, thesecond data by transforming a plurality of coordinates in the seconddata from a sensor coordinate system to the reference coordinate systemaccording to the transformation.
 2. The method of claim 1, wherein atleast one of the one or more sensors comprises a forward-looking sensorcharacterizing a driving environment ahead of the vehicle.
 3. The methodof claim 2, further comprising producing, by the computer system,information characterizing the driving environment ahead of the vehicle.4. The method of claim 3, wherein each sensor of the one or more sensorsis selected from the group consisting of an ultrasonic transducer, alaser scanner, and a lidar scanner.
 5. The method of claim 1, whereinthe estimating comprises correcting a predicted motion of the vehiclewith the first data.
 6. The method of claim 5, wherein the correctingthe predicted motion comprises applying a Kalman filter.
 7. The methodof claim 6, wherein the first data characterize the attitude of a bodyof the vehicle in at least one of pitch, roll, and yaw.
 8. The method ofclaim 6, further comprising producing, by the computer system, thepredicted motion.
 9. The method of claim 8, wherein at least one of theone or more sensors comprises a forward-looking sensor directed to anarea in front of the vehicle.
 10. The method of claim 9, whereinestimating the expected amount of movement of the vehicle at the futuretime comprises: using, by the computer system, the first data to profilea portion of road ahead of the vehicle at the particular moment in time;and using, by the computer system, a virtual, vehicle-motion model andthe profile to generate the expected amount of movement.
 11. A methodcomprising: carrying, by a vehicle, an on-board computer system and aplurality of on-board sensors; receiving, by the on-board computersystem, a first plurality of inputs characterizing one or more firstconditions sensed by the plurality of on-board sensors at a particularmoment in time; estimating, by the on-board computer system based on oneor more inputs of the first plurality of inputs, expected movement of abody of the vehicle in terms of heave, pitch, yaw, and roll with respectto a reference coordinate system at a future time according to at leastone feature detected in front of the vehicle in the one or more inputsof the first plurality of inputs; defining, by the on-board computersystem, a transformation matrix according to the estimating of theexpected movement of the body of the vehicle in terms of heave, pitch,yaw, and roll with respect to the reference coordinate system; andreceiving, by the on-board computer system, a second plurality of inputscharacterizing one or more second conditions sensed by a forward-lookingsensor of the plurality of on-board sensors at a time when the at leastone feature is under the vehicle; correcting, by the on-board computersystem, data characterizing the one or more second conditions bymultiplying a plurality of coordinates in a portion of the secondplurality of inputs received from the forward-looking sensor by thetransformation matrix to obtain corrected coordinates.
 12. The method ofclaim 11, wherein the forward-looking sensor is selected from the groupconsisting of an ultrasonic transducer, a laser scanner, and a lidarscanner.
 13. A vehicle comprising: a plurality of on-board sensorsproducing sensor coordinates in a sensor coordinate system; an on-boardcomputer system; and an on-board data acquisition system convertingsignals from the plurality of on-board sensors to a plurality of inputsprocessable by the on-board computer system; the on-board computersystem comprising memory and at least one processor operably connectedto the memory, the memory storing a motion-estimation module programmedto estimate, based at least in part on one or more inputs of theplurality of inputs, expected movement of the vehicle at a future timewith respect to a reference coordinate system in response to a featuresensed in front of the vehicle at a particular moment in time, thefuture time being a future time when the feature will be under thevehicle, and a motion-compensation module programmed to: generate atransformation matrix according to the estimating of the expectedmovement of the vehicle with respect to the reference coordinate system;and correct data characterizing a condition sensed by one or moresensors of the plurality of on-board sensors after the particular momentin time when the feature is under the vehicle by multiplying the sensorcoordinates in the data characterizing the condition by thetransformation matrix to obtain corrected coordinates.
 14. The vehicleof claim 13, wherein at least one of the one or more sensors comprisesan on-board, forward-looking sensor characterizing a driving environmentahead of the vehicle.
 15. The vehicle of claim 14, wherein the memoryfurther stores a sensor-evaluation module programmed to outputinformation characterizing the driving environment ahead of the vehicle.16. The vehicle of claim 13, wherein the motion-estimation module isfurther programmed to apply a Kalman filter to estimate the expectedmovement of the vehicle at the future time when the feature is under thevehicle.
 17. The vehicle of claim 16, wherein each sensor of the one ormore sensors is selected from the group consisting of an ultrasonictransducer, a laser scanner, and a lidar scanner.